package com.bjsxt.publisher;

import com.bjsxt.livegoods.pojo.LivegoodsMessage;
import org.springframework.amqp.core.AmqpTemplate;

/**
 * @ClassName : LivegoodsMessagePublisher
 * @Description : 消息发送工具
 * @Author : ZWZ
 * @Date: 2021/8/27 14:20
 */
public class LivegoodsMessagePublisher {

    private AmqpTemplate amqpTemplate;

    public AmqpTemplate getAmqpTemplate() {
        return amqpTemplate;
    }

    public void setAmqpTemplate(AmqpTemplate amqpTemplate) {
        this.amqpTemplate = amqpTemplate;
    }

    /**
     * 同步消息发送方法。 消息的消费者不返回，当前方法不结束
     *
     * @param exchange         交换器
     * @param router           路由键
     * @param livegoodsMessage 要发送的消息
     * @return
     */
    public Object sendMessageSync(String exchange, String router, LivegoodsMessage livegoodsMessage) {
        return amqpTemplate.convertSendAndReceive(exchange, router, livegoodsMessage);
    }

    /**
     * 异步消息发送方法。 消息发送立刻返回。不等待消费者处理。
     *
     * @param exchange
     * @param router
     * @param livegoodsMessage
     */
    public void sendMessageAsync(String exchange, String router, LivegoodsMessage livegoodsMessage) {
        amqpTemplate.convertAndSend(exchange, router, livegoodsMessage);
    }

}
